package com.bfly.mall.product.service;

import com.bfly.core.base.service.IBaseService;
import com.bfly.mall.admin.entity.Admin;
import com.bfly.mall.product.dto.ProductCommentFormDTO;
import com.bfly.mall.product.entity.ProductComment;
import com.bfly.mall.product.enums.ProductCommentStatusEnum;
import com.bfly.mall.user.entity.User;

import java.util.List;

/**
 * @author 长沙商脉科技有限公司
 * @date 2020/10/4 9:40
 */
public interface IProductCommentService extends IBaseService<ProductComment, Integer> {

    /**
     * 回复评论
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 10:04
     */
    void reply(Admin admin, ProductCommentFormDTO formDTO);

    /**
     * 发布评论
     * @author 长沙商脉科技有限公司
     * @date 2020/12/31 12:44
     */
    void save(User user, ProductCommentFormDTO formDTO);

    /**
     * 编辑评论状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 10:17
     */
    void editCommentStatus(int commentId, ProductCommentStatusEnum status);

    /**
     * 获取产品的评论集合
     *
     * @param statusEnum 评论状态可以为null
     * @param productId  产品ID可以为null
     * @author 长沙商脉科技有限公司
     * @date 2020/11/9 15:53
     */
    List<ProductComment> getComments(Integer productId, ProductCommentStatusEnum statusEnum);
}
